草庐IT

C++ 将 unsigned char append 到 wstring

全部标签

c++ - 根据 MSVC++ 中的 unicode 设置自动在 std::string 和 std::wstring 之间切换?

我正在编写一个DLL,并希望能够在MSVC++2010中的unicode和多字节设置之间切换。例如,我使用_T("string")和LPCTSTR和WIN32_FIND_DATA而不是-W和-A版本等等。现在我想让std::strings根据unicode设置在std::string和std::wstring之间变化。那可能吗?否则,这可能最终会变得极其复杂。 最佳答案 为什么不像Win32API那样做:在内部使用宽字符,并提供DoSomethingA函数的字符转换外观,将其输入简单地转换为Unicode。也就是说,您可以像这样定义

c++ - boost::regex_search 可以在 wstring 上完成吗?

这是我尝试过的:std::wstringextractText(std::wstringline){std::wstringtext;boost::regexexp("^.*?PRIVMSG#.*?:(.+)");boost::smatchmatch;if(boost::regex_search(line,match,exp)){text=std::wstring(match[1].first,match[1].second);}returntext;} 最佳答案 使用wregex和wsmatch

c++ - wstring null 终止了吗?

std::wstring的内部结构是什么?包括长度吗?它是空终止的吗?两个? 最佳答案 Doesitincludethelength是的。它是C++11标准所要求的。§21.4.4size_typesize()constnoexcept;1.Returns:Acountofthenumberofchar-likeobjectscurrentlyinthestring.2.Complexity:constanttime.但是请注意,这是无法识别unicode的。Isitnullterminated是的。C++11标准还要求std::b

c++ - 使用 wstring 获取行读取文件

我有一个包含文本的文件,我想将该文件中的每一行都放入一个std::wstring变量中。如果我这样做,我会得到一个错误,所以是否可以使用std::wstring还是我必须使用std::string?这是我的代码:std::ifstreamfichier("text.txt");if(fichier){std::wstringligne;while(std::getline(fichier,ligne)){//workwithligne}}如前所述,如果我将std::wstring替换为std::string我没有错误。 最佳答案 尝

c++ - libc++ 与 VC++ : Can non-UTF conversions be done with wstring_convert?

C++11的std::wstring_convert效果很好*用于标准UTF-8UTF-16/UCS2/UCS4转换。但是,当我尝试使用不是来自的构面实例化wstring_convert或wbuffer_convert时,它没有按预期工作://worksasexpectedstd::wstring_convert>ucs4conv;//Now,byanalogy,Iwanttotrythis:std::wstring_convert>gbconv(newstd::codecvt_byname("zh_CN.gb18030"));Clang++错误提示“在~wstring_convert

c++ - C++0x 是否支持 std::wstring 与 UTF-8 字节序列的转换?

我看到C++0x将添加对UTF-8、UTF-16和UTF-32文字的支持。但是三种表示之间的转换呢?我计划在我的代码中到处使用std::wstring。但是在处理文件和网络时,我还需要操作UTF-8编码的数据。C++0x是否也会提供对这些操作的支持? 最佳答案 在C++0x中,char16_t和char32_t将用于存储UTF-16和UTF-32而不是wchar_t.来自n2798草案:22.2.1.4Classtemplatecodecvt2Theclasscodecvtisforusewhenconvertingfromonec

c++ - 将 int 转换为 wstring

我想将整数值(int)转换为std::wstring。做这个的最好方式是什么?我正在为WindowsPhone开发,所以我宁愿避免使用外部库(例如boost::lexical_cast)。我正在寻找一些简单的东西,最好是仅将int分配给wstring的一行代码。如有任何帮助,我们将不胜感激。 最佳答案 你在找std::to_wstring吗std::wstringto_wstring(intvalue);(sinceC++11)Convertsasigneddecimalintegertoawidestringwiththesame

c++ - 在现代 PC 的 C++ 异常类中避免 std::wstring 数据成员是否有意义?

在this"ErrorandExceptionHandling"中的“我应该如何设计我的异常类?”段落中Boost网页,上面写着:[...]3.Don'tembedastd::stringobjectoranyotherdatamemberorbaseclasswhosecopyconstructorcouldthrowanexception.我必须定义一个异常类来表示某种形式的文件访问运行时错误,所以我想从std::runtime_error派生它,并添加一个FileName()属性以访问发生错误的文件名。为简单起见,我打算添加一个std::wstring数据成员来存储文件名(Uni

c++ - std::string、wstring、u16/32string 说明

我目前对std::string和std::wstring之间区别的理解只是缓冲区的类型;即,分别是char和wchar_t。我还读到大多数(如果不是全部)Linux发行版对任何和所有字符串使用char,包括ASCII和UTF,其中Windows是使用的主要操作系统wchar_t了。然而,还有一些字符串类型我想直接记在脑子里:u16string和u32string,它们是2字节和4字节的字符串字节缓冲区,分别。所以,我的问题是:在sizeof(wchar_t)==2的平台上,std::wstring在功能上等同于std::u16string,以及作为具有sizeof(wchar_t)==

c++ - 如何添加到 wstring?

这适用于std::stringstd::stringclass::something(char*input){std::strings(input);s="hai!"+s;returns;}但是如果我用wstring尝试同样的事情会失败std::wstringclass::something(wchar_t*input){std::wstrings(input);s="hai!"+s;returns;}如何用std::wstring做同样的事情? 最佳答案 这里的问题是类型。wstring不是字符串,而是一个带引号的字符串常量与其相